//
// Created by THE13 on 2024/2/14.
//

#ifndef HUB_USB_ST7789_CONFIG_IO_H
#define HUB_USB_ST7789_CONFIG_IO_H

#ifdef __cplusplus
extern "C"{
#endif


#include "main.h"

/* if value is 1 ,use the dma buffer to . */
#define USE_BUFFER    1
#define USE_DMA       1
#define HOR_LEN 	ST7789_HEIGHT

/* choose a Hardware SPI port to use. */
#define ST7789_SPI_PORT hspi1
extern SPI_HandleTypeDef ST7789_SPI_PORT;

/* Pin connection*/
#define ST7789_RST_PORT LCD_RESET_GPIO_Port
#define ST7789_RST_PIN  LCD_RESET_Pin
#define ST7789_DC_PORT  LCD_RS_GPIO_Port
#define ST7789_DC_PIN   LCD_RS_Pin

#ifndef CFG_NO_CS
#define ST7789_CS_PORT  LCD_CS_GPIO_Port
#define ST7789_CS_PIN   LCD_CS_Pin
#endif

/* If u need Backlight control, uncomment below */
//#define BLK_PORT GPIOB
//#define BLK_PIN GPIO_PIN_2
//#define BLK_ON()  HAL_GPIO_WritePin(BLK_PORT, BLK_PIN, GPIO_PIN_SET);//LCD_BL背光板控制

/* Basic operations */
#define ST7789_RST_Clr() HAL_GPIO_WritePin(ST7789_RST_PORT, ST7789_RST_PIN, GPIO_PIN_RESET)
#define ST7789_RST_Set() HAL_GPIO_WritePin(ST7789_RST_PORT, ST7789_RST_PIN, GPIO_PIN_SET)

#define ST7789_DC_Clr() HAL_GPIO_WritePin(ST7789_DC_PORT, ST7789_DC_PIN, GPIO_PIN_RESET)
#define ST7789_DC_Set() HAL_GPIO_WritePin(ST7789_DC_PORT, ST7789_DC_PIN, GPIO_PIN_SET)
#ifndef CFG_NO_CS
#define ST7789_Select() HAL_GPIO_WritePin(ST7789_CS_PORT, ST7789_CS_PIN, GPIO_PIN_RESET)
#define ST7789_UnSelect() HAL_GPIO_WritePin(ST7789_CS_PORT, ST7789_CS_PIN, GPIO_PIN_SET)
#endif

#ifdef __cplusplus
}


#endif

#endif //HUB_USB_ST7789_CONFIG_IO_H
